all: base modules

base: onebot.o info.o irc.o re.o utils.o mod.o 
	gcc -o onebot.o info.o irc.o re.o utils.o mod.o -lpcre -lpthread -ldl

onebot.o: onebot.c
	gcc -c onebot.c

info.o: info.c info.h
	gcc info.c -c -fPIC

irc.o: irc.c irc.h
	gcc irc.c -c -fPIC

re.o: re.c re.h
	gcc re.c -c -fPIC

urils.o: utils.h utils.c
	gcc utils.c -c -fPIC

mod.o: mod.c mod.h
	gcc mod.c -c -fPIC

modules: 
	gcc mods/log.c -c -o mods/log.o -fPIC -I.
	gcc re.o utils.o mods/log.o -o mods/log.so -shared
	gcc mods/about.c -c -o mods/about.o -fPIC -I.
	gcc irc.o re.o utils.o mods/about.o -o mods/about.so -shared
	gcc mods/antikick.c -c -o mods/antikick.o -fPIC -I.
	gcc irc.o re.o utils.o mods/antikick.o -o mods/antikick.so -shared
	gcc mods/join.c -c -o mods/join.o -fPIC -I.
	gcc irc.o re.o utils.o mods/join.o -o mods/join.so -shared
	gcc mods/access.c -c -o mods/access.o -fPIC -I.
	gcc irc.o re.o utils.o mods/access.o -o mods/access.so -shared

clean:
	rm -f *.o *.so mods/*.o mods/*.so onebot
